package one.stand.service;

import one.stand.enums.LoginEnum;
import one.stand.model.Admin;
import one.stand.model.User;

public interface UserService {
    /**
     * 下载微信头像上传至oss；更新对应头像地址；异步
     */
    void updateImgToLocal();

    Integer saveAdmin(Admin admin);

    void saveUser(User user);

    void saveUserLoginWx(Integer userId, Integer clientType, String companyKey, String openId);

    void deleteById(Integer userId);

    /**
     * 没有授权用户没有unionid， 再次授权后清除该用户
     */
    void deleteByOpenId(String openId);

    /**
     * 合并一号小程序用户到 0号小程序用户
     *
     * @param mergeUserId 一号小程序用户
     * @param userId      0号小程序用户
     */
    void merge(Integer mergeUserId, Integer userId);

    void update(User userModel);

    User getByPasswd(String username, String passwd);

    User getByUnionid(String unionid);

    User getByOpenId(LoginEnum loginEnum, String companyKey, String openId);

    User getByWx(String unionid, LoginEnum loginEnum, String companyKey, String openId);

    User getByPhone(String phone, Integer companyId);
}
